package com.example.dubboapi.service;

import com.example.dubboapi.entity.Order;

import java.util.List;

/**
 * 订单服务接口
 */
public interface OrderService {
    
    /**
     * 创建订单
     * @param order 订单信息
     * @return 创建后的订单信息
     */
    Order createOrder(Order order);
    
    /**
     * 根据订单ID查询订单
     * @param id 订单ID
     * @return 订单信息
     */
    Order getOrderById(Long id);
    
    /**
     * 根据订单编号查询订单
     * @param orderNo 订单编号
     * @return 订单信息
     */
    Order getOrderByOrderNo(String orderNo);
    
    /**
     * 根据用户ID查询订单列表
     * @param userId 用户ID
     * @return 订单列表
     */
    List<Order> getOrdersByUserId(Long userId);
    
    /**
     * 更新订单状态
     * @param id 订单ID
     * @param status 订单状态
     * @return 更新后的订单信息
     */
    Order updateOrderStatus(Long id, Integer status);
    
    /**
     * 取消订单
     * @param id 订单ID
     * @return 是否取消成功
     */
    boolean cancelOrder(Long id);
}